package com.example.tetstmybatis.service;

import com.example.tetstmybatis.domain.Topn1;
import com.example.tetstmybatis.domain.Topn1Example;
import com.example.tetstmybatis.domain.dto.Topn1Dto;
import com.example.tetstmybatis.mapper.Topn1Mapper;
import com.example.tetstmybatis.req.ReqTopn1;
import com.example.tetstmybatis.resp.CommonResp;
import com.example.tetstmybatis.utils.CopyUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class Topn1Service {
    @Autowired
    private Topn1Mapper topn1Mapper;
    public CommonResp list(){
        CommonResp commonResp = new CommonResp();
        Topn1Example topn1Example = new Topn1Example();
//        topn1Example.setOrderByClause("total desc");
        topn1Example.setOrderByClause("name asc");
        List<Topn1> topn1s = topn1Mapper.selectByExample(topn1Example);
//        ArrayList<Topn1Dto> topn1Dtos = new ArrayList<>();
//        for(int i=0,l=topn1s.size();i<l;i++){
//            Topn1 topn1 = topn1s.get(i);
////            Topn1Dto topn1Dto = new Topn1Dto();
////            topn1Dto.setName(topn1.getName());
////            topn1Dto.setTotal(topn1.getTotal());
////            BeanUtils.copyProperties(topn1,topn1Dto);//topn1  --->  topn1Dto
//            Topn1Dto topn1Dto = CopyUtil.copy(topn1, Topn1Dto.class);
//            topn1Dtos.add(topn1Dto);
//        }
        List<Topn1Dto> topn1Dtos = CopyUtil.copyList(topn1s, Topn1Dto.class);
        commonResp.setContent(topn1Dtos);
        return commonResp;
    }
    public CommonResp querytotal(ReqTopn1 reqTopn1){
//        ArrayList<Topn1Dto> topn1Dtos = new ArrayList<>();
        CommonResp commonResp = new CommonResp();
        Topn1Example topn1Example = new Topn1Example();
        topn1Example.createCriteria().andTotalEqualTo(reqTopn1.getTotal());//where
//        topn1Example.createCriteria().andTotalGreaterThan(total);

        List<Topn1> topn1s = topn1Mapper.selectByExample(topn1Example);
//        for(int i=0,l=topn1s.size();i<l;i++){
//            Topn1 topn1 = topn1s.get(i);
//            Topn1Dto topn1Dto = new Topn1Dto();
//            BeanUtils.copyProperties(topn1,topn1Dto);
//            topn1Dtos.add(topn1Dto);
//        }
        List<Topn1Dto> topn1Dtos = CopyUtil.copyList(topn1s, Topn1Dto.class);
        commonResp.setContent(topn1Dtos);

        return commonResp;
    }

    public CommonResp queryname(ReqTopn1 reqTopn1){
//        ArrayList<Topn1Dto> topn1Dtos = new ArrayList<>();
        CommonResp commonResp = new CommonResp();
        Topn1Example topn1Example = new Topn1Example();
//        topn1Example.createCriteria().andNameEqualTo(name);
        topn1Example.createCriteria().andNameLike("%"+reqTopn1.getName()+"%");
        List<Topn1> topn1s = topn1Mapper.selectByExample(topn1Example);
//        for(int i=0,l=topn1s.size();i<l;i++){
//            Topn1 topn1 = topn1s.get(i);
//            Topn1Dto topn1Dto = new Topn1Dto();
//            BeanUtils.copyProperties(topn1,topn1Dto);
//            topn1Dtos.add(topn1Dto);
//        }
        List<Topn1Dto> topn1Dtos = CopyUtil.copyList(topn1s, Topn1Dto.class);
        commonResp.setContent(topn1Dtos);
        return commonResp;
    }

}
